package cn.fl.project.transform;

import java.util.ArrayList;
import java.util.List;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.fl.project.dto.PrjPrdLicInfoDTO;
import cn.fl.project.vo.PrjPrdLicInfoVO;

 /**
 * @Description: 项目车辆上牌信息表 转换器
 * @Description: VO是客户端传递数据到服务端进行转换的数据 
 * @Description: VO转换数据变成DTO传递到服务端 
 * @Description: VO不能在服务端出现
 */
public class PrjPrdLicInfoVOTransform {


	/**
	 * DTO 转  VO
	 * @param po PrjPrdLicInfoDTO
	 * @return PrjPrdLicInfoVO
	 */
	public static PrjPrdLicInfoVO toVO(PrjPrdLicInfoDTO dto) {
		PrjPrdLicInfoVO  vo = null;
		if (dto != null) { 
			vo = new PrjPrdLicInfoVO();
			vo.setId(dto.getId());
			vo.setLicDt(dto.getLicDt());//上牌时间
			vo.setLicOrgId(dto.getLicOrgId());//上牌地点
			vo.setLicRem(dto.getLicRem());//备注
			vo.setAudStsCd(dto.getAudStsCd());//审核状态（SYS0019）
			vo.setPinstId(dto.getPInstId());//流程实例ID
			vo.setPno(dto.getPNo());//流程编号
			vo.setAudStsCdNm(dto.getAudStsCdNm());//审核状态
			vo.setLicOrg(PrjPrdLicOrgVOTransform.toVO(dto.getLicOrg()));
			vo.setIsDel(dto.getIsDel());//是否删除
			vo.setCrtTm(dto.getCrtTm());//创建时间
			vo.setCrtUsrId(dto.getCrtUsrId());//创建人
			vo.setMdfTm(dto.getMdfTm());//修改时间
			vo.setMdfUsrId(dto.getMdfUsrId());//修改人
			vo.setVehNo(dto.getVehNo());
			vo.setCarOwner(dto.getCarOwner());
			vo.setRecNo(dto.getRecNo());
			vo.setPrjPrdDtlVO(PrjPrdDtlVOTransform.toVO(dto.getPrjPrdDtlDto()));//产品明细
			vo.setPrjPrdVehInfoVO(PrjPrdVehInfoVOTransform.toVO(dto.getPrjPrdVehInfoDto()));//合格证信息
			vo.setGuidePc(dto.getGuidePc());
			vo.setVerification(dto.getVerification());//验证上牌
			
			//-------------------------分页附加数据--------------------------------//
			vo.setPrjId(dto.getPrjId());
			vo.setCstNm(dto.getCstNm());
			vo.setPaySchNo(dto.getPaySchNo());
			vo.setPrdNm(dto.getPrdNm());
			vo.setPrdMdl(dto.getPrdMdl());
			vo.setDtlId(dto.getDtlId());
			vo.setVehId(dto.getVehId());
			vo.setCertNo(dto.getCertNo());
			vo.setVin(dto.getVin());
			vo.setSplNm(dto.getSplNm());
			vo.setMfrNm(dto.getMfrNm());

			vo.setCstId(dto.getCstId());//客户Id
			vo.setCstMgrId(dto.getCstMgrId());
			vo.setCstMgrNm(dto.getCstMgrNm());
			vo.setCstMgrOrgCD(dto.getCstMgrOrgCD());
			vo.setPaySchId(dto.getPaySchId());
		}
		return vo;
	}

	/**
	 * VO 转 DTO
	 * @param dto PrjPrdLicInfoVO
	 * @return PrjPrdLicInfoDTO
	 */
	public static PrjPrdLicInfoDTO toDTO(PrjPrdLicInfoVO vo) {
		PrjPrdLicInfoDTO dto = null;
		if (vo != null) {
			dto = new PrjPrdLicInfoDTO();
			dto.setId(vo.getId());
			dto.setLicDt(vo.getLicDt());//上牌时间
			dto.setLicOrgId(vo.getLicOrgId());//上牌地点
			dto.setLicRem(vo.getLicRem());//备注
			dto.setAudStsCd(vo.getAudStsCd());//审核状态（SYS0019）
			dto.setPInstId(vo.getPinstId());//流程实例ID
			dto.setPNo(vo.getPno());//流程编号
			dto.setIsDel(vo.getIsDel());//是否删除
			dto.setCrtTm(vo.getCrtTm());//创建时间
			dto.setCrtUsrId(vo.getCrtUsrId());//创建人
			dto.setMdfTm(vo.getMdfTm());//修改时间
			dto.setMdfUsrId(vo.getMdfUsrId());//修改人
			dto.setAudStsCdNm(vo.getAudStsCdNm());//审核状态
			dto.setLicOrg(PrjPrdLicOrgVOTransform.toDTO(vo.getLicOrg()));
			dto.setCarOwner(vo.getCarOwner());
			dto.setRecNo(vo.getRecNo());
			dto.setPrjPrdDtlDto(PrjPrdDtlVOTransform.toDTO(vo.getPrjPrdDtlVO()));
			dto.setPrjPrdVehInfoDto(PrjPrdVehInfoVOTransform.toDTO(vo.getPrjPrdVehInfoVO()));
			dto.setGuidePc(vo.getGuidePc());
			dto.setVerification(vo.getVerification());//验证上牌
			//-------------------------分页附加数据--------------------------------//
			dto.setPrjId(vo.getPrjId());
			dto.setCstNm(vo.getCstNm());
			dto.setPaySchNo(vo.getPaySchNo());
			dto.setPrdNm(vo.getPrdNm());
			dto.setPrdMdl(vo.getPrdMdl());
			dto.setDtlId(vo.getDtlId());
			dto.setVehId(vo.getVehId());
			dto.setCertNo(vo.getCertNo());
			dto.setVin(vo.getVin());
			dto.setSplNm(vo.getSplNm());
			dto.setMfrNm(vo.getMfrNm());
			dto.setVehNo(vo.getVehNo());
			

		}
		return dto;
	}
	
	/**
	 * DTO集合 转 VO集合
	 * @param List<PrjPrdLicInfoDTO>
	 * @return List<PrjPrdLicInfoVO>
	 */
	public static List<PrjPrdLicInfoVO> toVOList(List<PrjPrdLicInfoDTO> list) {
		List<PrjPrdLicInfoVO>  voList = new ArrayList<PrjPrdLicInfoVO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (PrjPrdLicInfoDTO dto : list) {
				voList.add(toVO(dto));
			}
		}
		return voList;
	}
	
	/**
	 * VO集合 转 DTO集合
	 * @param list List<PrjPrdLicInfoVO>
	 * @return List<PrjPrdLicInfoDTO>
	 */
	public static List<PrjPrdLicInfoDTO> toDTOList(List<PrjPrdLicInfoVO> list) {
		List<PrjPrdLicInfoDTO>  dtoList = new ArrayList<PrjPrdLicInfoDTO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (PrjPrdLicInfoVO vo : list) {
				dtoList.add(toDTO(vo));
			}
		}
		return dtoList;
	}
}
